// 创建redux仓库
//配置数据的持久化效果
import { persistReducer, persistStore } from "redux-persist";
//导入需要配置的数据源，可以选择，storage，cookie,session等
import storage from "redux-persist/lib/storage";
// 1、引入创建仓库的函数
import {legacy_createStore as createStore} from 'redux' 
// 2、创建初始数据
const defaultState = {
    acl:[],//用户菜单数据
}
// 3、创建reducer纯函数
const reducer=(state=defaultState,action)=>{
    if(action.type=='updateAcl'){
        state.acl=action.payload
        return {
            ...state,//保留原数据
        }
    }
    return state
}

//定义配置的信息
const persitConfig = {
    key:"root",
    storage:storage,
   // 如果不想将部分state持久化，可以将其放入黑名单(blacklist)中.黑名单是设置
//   blacklist: ['ll']
}
//创建持久化的配置persist的信息
const persist_reducers = persistReducer(persitConfig,reducer)
// 4、创建仓库
const store = createStore(
    persist_reducers,
    //添加以下代码可以在调试工具中看到仓库实时数据
    window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
    )
    
const persistor =  persistStore(store);
// 5、导出store
export  {store,persistor}